﻿namespace ImageDupFinder.PluginCore
{
    /// <summary>
    /// Interface representing single image feature
    /// </summary>
    public interface IFeature
    {
        /// <summary>
        /// Gets Feature name.
        /// </summary>
        string Name { get; }

        /// <summary>
        /// Gets a value indicating whether feature is calculated.
        /// </summary>       
        bool IsCalculated { get; }

        /// <summary>
        /// Calculate similarity between two images
        /// </summary>
        /// <param name="other">Second feature used in calcualtion</param>
        /// <returns>Similarity in range 0 - 1, where 0 means "identical" and 1 means "completly different"</returns>
        float GetSimilarity(IFeature other);
    }
}
